package com.example.demo.listener;

import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;

@Slf4j
@Component
public class RabbitMQConsumer {

//    // 监听简单队列
//    @RabbitListener(queues = "queue.simple.dynamic")
//    public void listenSimpleQueue(String message) {
//        log.info("【消费者-简单队列】收到消息: {}", message);
//    }
//
//    // 监听工作队列
//    @RabbitListener(queues = "queue.work.dynamic")
//    public void listenWorkQueue(String message) {
//        log.info("【消费者-工作队列】收到任务: {}", message);
//    }
//
//    // 监听 Fanout A
//    @RabbitListener(queues = "queue.fanout.a.dynamic")
//    public void listenFanoutA(String message) {
//        log.info("【消费者-Fanout A】收到广播消息: {}", message);
//    }
//
//    // 监听 Fanout B
//    @RabbitListener(queues = "queue.fanout.b.dynamic")
//    public void listenFanoutB(String message) {
//        log.info("【消费者-Fanout B】收到广播消息: {}", message);
//    }
//
//    // 监听 Direct - red
//    @RabbitListener(queues = "queue.direct.red.dynamic")
//    public void listenDirectRed(String message) {
//        log.info("【消费者-Direct Red】收到定向消息: {}", message);
//    }
//
//    // 监听 Direct - blue
//    @RabbitListener(queues = "queue.direct.blue.dynamic")
//    public void listenDirectBlue(String message) {
//        log.info("【消费者-Direct Blue】收到定向消息: {}", message);
//    }

    // 监听延迟任务真实消费队列（TTL + DLX 方案）
    @RabbitListener(queues = "queue.task.real")
    public void listenDelayedTaskRealQueue(String message) {
        try {
            log.info("【消费者-延迟任务(真实队列)】收到消息: {}", message);
        }catch (Exception e){
            log.error("【消费者-延迟任务(真实队列)】异常: {}", e.getMessage());
        }
    }

    // 监听延迟任务使用延迟队列插件
    @RabbitListener(queues = "queue.delay.plugin.task")
    public void listenDelayedPluginTaskDelayQueue(String message) {
        log.info("【消费者-延迟任务(延时队列插件)】收到消息: {}", message);
    }

}